package JunitTests;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import uk.ac.glasgow.demosocs.impl.election.ElectionImpl;
import uk.ac.glasgow.demosocs.impl.users.Voter;
import uk.ac.glasgow.demosocs.users.Electorate;

public class ElectionImplTest {
	private ElectionImpl election1;
	// electorate for the election
	private Electorate electorate1;
	//create two test voters
	private Voter voter1;
	private Voter voter2;
			
	
	
	@Before
	public void setUp() throws Exception {
		election1 = new ElectionImpl("election1","type1");
		electorate1 = new Electorate("1");
		voter1 = new Voter("mysurname_v1","myforename_v1","guid1","123");
		voter2 = new Voter("mysurname_v2","myforename_v2","guid2","123");
		
		
		//add test voters to the electorate1
		
	}

	@After
	public void tearDown() throws Exception {
	}

	@Test
	public void testSetElectionID() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetEID() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetElectionName() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetElectionType() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetElectionResult() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetElectionState() {
		fail("Not yet implemented");
	}

	@Test
	public void testSetElectionState() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetCandidates() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetCandidateImplSet() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetOpenNominations() {
		fail("Not yet implemented");
	}

	@Test
	public void testSetNominationOpenDate() {
		fail("Not yet implemented");
	}

	@Test
	public void testSetStart() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetStart() {
		fail("Not yet implemented");
	}

	@Test
	public void testSetEnd() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetEnd() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetElectorate() {
		fail("Not yet implemented");
	}

	@Test
	public void testSetElectorate() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetNominees() {
		fail("Not yet implemented");
	}

	@Test
	public void testOpenNomination() {
		fail("Not yet implemented");
	}

	@Test
	public void testOpenElection() {
		fail("Not yet implemented");
	}

	@Test
	public void testEndElection() {
		fail("Not yet implemented");
	}

	@Test
	public void testNominate() {
		election1.nominate(voter1.getGUID(), voter2.getGUID());
		assertTrue(voter2.getRole().equals("NOMINEE"));
	}

	@Test
	public void testVote() {
		fail("Not yet implemented");
	}

	@Test
	public void testNotifyNominee() {
		fail("Not yet implemented");
	}

	@Test
	public void testNomineeAccept() {
		fail("Not yet implemented");
	}

	@Test
	public void testNomineeDecline() {
		fail("Not yet implemented");
	}

	@Test
	public void testIsCandidateSetComtainsGUID() {
		fail("Not yet implemented");
	}

	@Test
	public void testIsNomineeSetComtainsGUID() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetCandidateByGUID() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetNomineeByGUID() {
		fail("Not yet implemented");
	}

}
